ВГОРУ

SQL Self Join (Самооб’єднання)

SQL Self Join Опис

Самооб’єднання є звичайним об’єднанням, коли таблиця об’єднується сама з собою.


Self Join Синтаксис

SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition

T1 та T2 це різні псевдоніми для однієї таблиці.

Демонстраційна база даних

У цьому довіднику ми будемо використовувати відомий приклад бази даних "Northwind".

Нижче наведено вибірку із таблиці "Customers" ("Клієнти").

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL Self Join Приклад

Наступна SQL-інструкція вибирає клієнтів з одного міста (City):

Run SQLSELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City 
FROM Customers A, Customers B 
WHERE A.CustomerID <> B.CustomerID 
AND A.City = B.City 
ORDER BY A.City
MySQL діалект використовує "!=" замість "<>".